."   Copyright (c) 2007 DUDOUET Clément.
."  Permission is granted to copy, distribute and/or modify this document
."  under the terms of the GNU Free Documentation License, Version 1.2
."  or any later version published by the Free Software Foundation;
."  with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
."  Texts.  A copy of the license is included in the project in directory
."  [$PROJECT_PATH]/doc/fdl.txt
.TH filoo_read 2 "Fevrier 11, 2007" "version 1.0" "Manuel d'utilisateur"
.SH NOM
filoo_read \- Lecture dans un fichier circulaire préalablement ouvert
.SH SYNOPSIS
.nf
.B #include <sys/types.h>
.B #include <unistd.h>
.sp
.BI "ssize_t filoo_read(int " fd ", void *" buffer ", size_t " count ");
.SH DESCRIPTION
.B filoo_read
lit jusqu'a
.I count
octets depuis le pointeur du descripteur de fichier fd dans le tampon pointé par
.I buf.
Ce fichier doit être un fichier circulaire préalablement ouvert via l'appel système
.BR filoo_open "(2)"
ou
.BR filoo_create "(2)"
.sp
Si
.I count
vaut zéro,
.B filoo_read
renvoie zéro et n'a pas d'autres effets. Si
.I count
est supérieur a SSIZE_MAX, le résultat est indéfini.

.B filoo_read
se distingue de l'appel système
.B read
en ce sens qu'il a une lecture "circulaire". C'est a dire que lorsque la fin du fichier est atteinte, la lecture continue au début de celui-ci.
Autrement dit, la lecture du n-ème octet correspond en réalité a la lecture de l'octet n [size] (sachant que l'entête spécifiant le fichier filoo, ne peut être lue par filoo_read).
.SH VALEUR RENVOYEE
.B filoo_read
renvoie \-1 s'il échoue, auquel cas
.I errno
contient le code d'erreur correspondant, et la position de la tête de lecture est indéfinie.
Dans les autres cas,
.B filoo_read 
renvoie le nombre d'octets lus et avance la tête de lecture de ce nombre.
.SH ERREURS
.TP
.B EBADF
.I fd
n'est pas un descripteur valide, ou n'est pas en lecture.
.TP
.B ...
cf.
.BR read "(2)"
.SH VOIR AUSSI
.BR filoo_close "(2),"
.BR filoo_create "(2),"
.BR filoo_open "(2),"
.BR filoo_write "(2)"
.SH AUTEUR
Clément DUDOUET
.SH DISPONIBILITE
Le projet est disponible a cette adresse :
.TP
.B http://code.google.com/p/filoo
.TP
Et par l'intermédiaire de SVN en utilisant la commande :
.TP
.B svn checkout http://filoo.googlecode.com/svn/trunk/ filoo
